Revert my attempted overly simple fix for #445284, as it causes a
authorTor Lillqvist <tml@novell.com>
Mon, 25 Jun 2007 06:38:58 +0000 (06:38 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 25 Jun 2007 06:38:58 +0000 (06:38 +0000)
2007-06-25  Tor Lillqvist  <tml@novell.com>

* gdk/win32/gdkevents-win32.c (gdk_pointer_grab): Revert my
attempted overly simple fix for #445284, as it causes a
regression. (For instance, in GIMP the tool cursor gets used also
for the right-click menu in image windows.) A more complex fix is
needed to more completely emulate X11 behaviour.

svn path=/trunk/; revision=18225

ChangeLog
gdk/win32/gdkevents-win32.c

index 6ace9d2aa393518e230185bde9f017acc890f8e1..b1f2651805aa1b7fb57199e6bb9fea7df521bddd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-06-25  Tor Lillqvist  <tml@novell.com>
+
+       * gdk/win32/gdkevents-win32.c (gdk_pointer_grab): Revert my
+       attempted overly simple fix for #445284, as it causes a
+       regression. (For instance, in GIMP the tool cursor gets used also
+       for the right-click menu in image windows.) A more complex fix is
+       needed to more completely emulate X11 behaviour.
+
 2007-06-24  Kristian Rietveld  <kris@gtk.org>
 
        * Makefile.am: fix little mistake in my last commit ...
index 9364d15514f45c7fde51e39779f5403d8a944290..5059a88993c3d63c097b43f0a5e1040f84d2e6bc 100644 (file)
@@ -534,6 +534,8 @@ gdk_pointer_grab (GdkWindow    *window,
   
   if (return_val == GDK_GRAB_SUCCESS)
     {
+      GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (((GdkWindowObject *) window)->impl);
+
       if (p_grab_window != NULL && p_grab_window != window)
        generate_grab_broken_event (p_grab_window, FALSE, window);
       
@@ -550,6 +552,10 @@ gdk_pointer_grab (GdkWindow    *window,
 
       if (p_grab_cursor != NULL)
        SetCursor (p_grab_cursor);
+      else if (impl->hcursor != NULL)
+       SetCursor (impl->hcursor);
+      else
+       SetCursor (LoadCursor (NULL, IDC_ARROW));
 
       if (confine_to != NULL)
        {